const Koa = require('koa');
const axios = require('axios')
const app = new Koa();
// 中间件架构 + MVC 设计模式

// 按顺序罗列中间件 后端服务有工序
// ctx 上下文环境 引用式赋值
// 如何得知数据库查询或rpc调用花了多少时间
// 1. 接口请求 独立的中间件
// 计时中间件

app.use(async (ctx,next) => {
    const start = new Date();
    await next();
    const delta = new Date - start;
    console.log(`请求耗时 ${delta} MS`);
    console.log('拿到上一次请求的结果：',ctx.state.baiduHTML)
})
app.use(async(ctx, next) => {
    ctx.state.baiduHTML = await axios.get('http://www.baidu.com')
})
app.listen(8080,() => {
    console.log('Server is starting')
})